# 创建时间：2025/5/2 星期五 16:33
# 创建人：李德才

class Computer:
    def __init__(self, cpu, disk):
        self.cpu = cpu
        self.disk = disk


class Cpu:
    pass


class Disk:
    pass


com1 = Computer(Cpu(), Disk())
""" 这种直接赋值的方式就是浅拷贝，两个对象指向的是同一块内存地址"""
com2 = com1

print(id(com1), id(com2))
print("-----------------------------------------------")

"""
这种拷贝也是浅拷贝，
我们发现 com1 和 com3 的id 虽然不同， ** 但是  id(com1.cpu) 和 id(com3.cpu) 的值还是相同的 **
"""

import copy

com3 = copy.copy(com1)
print(id(com1), id(com3), id(com1.cpu), id(com3.cpu))

print("-----------------------------------------------")

""" copy.deepcopy 是深拷贝，com1 和 com4 是不同的， id(com1.cpu) 和 id(com4.cpu) 也是不同的 """
com4 = copy.deepcopy(com1)
print(id(com1), id(com4), id(com1.cpu), id(com4.cpu))
